package dp.路径;

/**
 * @author songZiHao
 * @version 1.0.0
 * @ClassName 爬楼梯70.java
 * @Description https://leetcode-cn.com/problems/climbing-stairs/
 * @createTime 2021年11月04日 17:46:00
 */
public class 爬楼梯70 {
	public int climbStairs(int n) {
		//如果只有1阶那么只有一种
		if (n<=1){
			return 1;
		}

		//定义备忘录,表示每一阶到达的方式
		int[] dp=new int[n+1];

		/**
		 * 状态初始化，
		 * 	 第一层只有一种方案
		 *
		 */
		dp[0]=1;
		dp[1]=1;
		/**
		 * 转态转移方程
		 * 	dp[i]=dp[i-1]+dp[i-2];
		 */
		for (int i = 2; i <=n; i++) {
			dp[i]=dp[i-1]+dp[i-2];
		}
		return dp[n];
	}
}
